The Call Center
A “call center” is an organization of people, telecommunications equipment and management software, with a mission of efficiently handling electronic customer contact. A typical call center must balance competing goals. Customers should experience high quality and consistent service as measured, for example, by how long the customer's call must wait in queue before being answered and receiving satisfactory service. At the same time, this service should be provided to make efficient use of call center resources.
Strategies for Call Center Management
“Workforce management” systems provide important tools for meeting the goals of the call center. These systems generate forecasts of call volumes and call handling times based on historical data, to predict how much staff will be needed at different times of the day and week. The systems then create schedules that match the staffing to anticipated needs.
Typically, an Automatic Call Distribution (ACD) function is provided in conjunction with a computerized Private Branch Exchange (PBX). This ACD function enables a group of agents, termed ACD agents, to handle a high volume of inbound calls and simultaneously allows a queued caller to listen to recordings when waiting for an available ACD agent. The ACD function typically informs inbound callers of their status while they wait and the ACD function routes callers to an appropriate ACD agent on a first-come-first-served basis.
Today, all full-featured PBXs provide the ACD function and there are even vendors who provide switches specifically designed to support the ACD function. The ACD function has been expanded to provide statistical reporting tools, in addition to the call queuing and call routing functions mentioned above, which statistical reporting tools are used to manage the call center. For example, ACD historical reports enable a manager to identify times: (a) when inbound callers abandon calls after long waits in a queue because, for example, the call center is staffed by too few ACD agents and (b) when many ACD agents are idle. In addition, ACD forecasting reports, based on the historical reports, allow the manager to determine appropriate staffing levels for specific weeks and months in the future.
Queue Management
ACD systems experience high traffic periods and low traffic periods. Consequently, ACD systems must be capable of automating two major decisions. The first major decision may be referred to as the “agent selection decision,” i.e., when more than one agent is available to handle the next transaction, which agent should be chosen? The second major decision may be referred to as the “transaction selection decision,” i.e., when more than one transaction is waiting for the next available agent and an agent becomes available, which transaction should the agent handle?
One approach to the agent selection decision is to set up a sequencing scheme, so that the switch of the ACD system follows the same sequence of agents until the first available agent in the sequence is found. The concern with this approach is that it creates “hot seats,” i.e. an inequitable distribution of inbound calls to ACD agents who are high in the sequence. Most current ACD systems solve the agent selection decision by using a longest-idle-eligible-agent approach to provide a more equitable distribution of transactions.
There are also different approaches to the transaction selection decision in which there are more available transactions than there are ACD agents. One approach is to create one or more first-in, first-out (FIFO) queues. Under this approach, each transaction may be marked with a priority level by the switch of the ACD system. When an agent becomes available, the transaction with the highest priority is routed to the agent. If several calls of equal priority are waiting in a queue, the call which has been waiting the longest is routed to the available agent. If the call center conducts outbound transactions, each transaction is similarly submitted to a FIFO queue with a priority designation, with the switch routing transactions from the queue to the agents.
Queue/Team Management
Calls that arrive at a call center generally are classified into “call types” based on the dialed number and possibly other information such as calling number or caller responses to prompts from the network. The call center is typically served by an automatic call distributor (ACD), which identifies the call type of each incoming call and either delivers or queues it. Each call type may have a separate first-in-first-out queue in the ACD. In most existing call centers, the agents answering calls are organized into one or more “teams,” with each team having primary responsibility of the calls in one or more queues. This paradigm is sometimes referred to as “queue/team.”
In the queue/team model, scheduling for each team can be done independently. Suppose, for example, that the call center handles calls for sales, service, and billing, and that each of these call types is served by a separate team. The schedule for sales agents will depend on the forecast for sales call volume and on various constraints and preferences applicable to the agents being scheduled, but this schedule is not affected by the call volume forecast for service or billing. Further, within the sales team, agents are typically considered interchangeable from a call handling viewpoint. Thus, within a team, schedule start times, break times and the like, may be traded freely among agents in the team to satisfy agent preferences without affecting scheduled call coverage. See, U.S. Pat. No. 5,325,292, expressly incorporated herein by reference.
In a queue/team environment, when a new call arrived, the ACD determines the call type and places it in the queue, if all agents are busy, or allocates this call to the team member who had been available the longest.
Skill-Based Routing
The longest-idle-agent approach and the FIFO approach function well in applications having little variation in the types of transactions being handled by the ACD agents. If all agents can handle any transaction, these approaches provide a sufficiently high level of transactional throughput, i.e., the number of transactions handled by the call center in a particular time interval. However, in many call center environments, the agents are not equally adept at performing all types of transactions. For example, some transactions of a particular call center may require knowledge of a language other than the native language of the country in which the call center is located. As another example, some transactions may require the expertise of “specialists” having training in the specific field to which the transaction relates, since training all agents to be knowledgeable in all areas would be cost-prohibitive. For ACD applications in which agents are not equally adept at performing all transactions, there are a number of problems which at least potentially reduce transactional throughput of the call center. Three such problems may be referred to as the “under-skilled agent” problem, the “over-skilled agent” problem, and the “static grouping” problem.
The under-skilled agent problem reduces transactional throughput when the switch routes transactions to ACD agents who do not have sufficient skills to handle the transactions. For example, a call may be routed to an English-only speaking person, even though the caller only speaks Spanish. In another example, the transaction may relate to product support of a particular item for which the agent is not trained. When this occurs, the agent will typically apologize to the customer and transfer the call to another agent who is capable of helping the customer. Consequently, neither the agent's nor the customer's time is efficiently utilized.
Inefficient utilization is also a concern related to the over-skilled agent problem. A call center may have fixed groupings of agents, with each group having highly trained individuals and less-experienced individuals. Call-management may also designate certain agents as “specialists,” since it would be cost prohibitive to train all agents to be experts in all transactions. Ideally, the highly skilled agents handle only those transactions that require a greater-than-average skill level. However, if a significant time passes without transactions that require highly skilled agents, the agents may be assigned to calls for which they are over-qualified. This places the system in a position in which there is no qualified agent for an incoming call requiring a particular expertise because the agents having the expertise are handling calls that do not require such expertise. Again, the transactional throughput of the call center is reduced.
Current ACD systems allow agents to be grouped according to training. For example, a product support call center may be divided into four fixed, i.e., “static,” groups, with each group being trained in a different category of products sold by the company. There are a number of potentially negative effects of static grouping. Firstly, the call center management must devise some configuration of agents into groups. This may be a costly process requiring extensive analysis and data entry. Secondly, the configuration that is devised is not likely to be optimal in all situations. The pace and mix of transactions will change during a typical day. At different times, the adverse effects of the under-skilled agent problem and the adverse effects of the over-skilled agent problem will vary with respect to the transactional throughput of the call center. Thirdly, when a new product is released, the devised configuration likely will be less valuable. In response to changes in the size, pace and mix of the transaction load over the course of time, call management must monitor and adjust the performance of the current grouping configuration on an ongoing basis. When trends are detected, the grouping configuration should be changed. This requires the time and attention of call center managers and supervisors. Again, the transactional throughput is reduced.
It is thus known in the prior art to provide ACD systems that depart from the queue/team model described above. Calls are still categorized into call types. In place of queues for the call types, however, queues associated with “skills” are provided. The ACD's call distribution logic for the call type determines which queue or queues a call will occupy at various times before it is answered. Agents are not organized into teams with exclusive responsibility for specific queues. Instead, each agent has one or more identified “skills” corresponding to the skills-based queues. Thus, both a given call and a given agent may be connected to multiple queues at the same time. Agent skills designations may be further qualified, for example, as “primary” or “secondary” skills, or with some other designation of skill priority or degree of skill attainment. The ACD call distribution logic may take the skill priority levels into account in its call distribution logic.
In a skills-based routing environment, the “matching” of calls to agents by the ACD becomes more sophisticated and thus complicated. Agents who have more than one skill no longer “belong” to a well-defined team that handles a restricted set of calls. Instead, the skills definitions form “implicit” teams that overlap in complex ways. If, for example, a call center has 10 skills defined, then agents could in principle have any of 1024 possible combinations (210) of those skills. Each skill combination could be eligible to handle a different subset of the incoming calls, and the eligible subset might vary with time of day, number of calls in queue, or other factors used by the ACD in its call routing decisions.
Today, call center managers want to connect a caller to an ACD agent having exactly the right skills to serve the caller. However, “skills based” ACD agent groups are often small and, as a result, whenever an inbound call arrives, all such “skills based” ACD agents may be busy. In such instances, the ACD function can take call back instructions from the caller and the ACD function can manage the call back functions, for example, by assigning such calls, in accordance with the caller instructions, to a “skills based” ACD agent whenever one becomes available.
Scheduling of agents in a skills-based environment is thus a much more difficult problem than it is in a queue/team environment. In a skills-based environment, call types cannot be considered in isolation. Thus, for example, a heavy volume of Service calls might place higher demands on multi-skilled agents, causing an unforeseen shortage of coverage for Billing calls. Further, agents with different skills cannot be considered interchangeable for call handling. Thus, trading lunch times between a Sales-only agent and a multi-skill agent might lead to over-staffing Sales at noon while under-staffing Service at 1:00 p.m. This would lead to undesirable results. Moreover, with respect to the needs of a particular call type, a multi-skilled agent might provide no help over a given span of time, might be 100% available for calls of that type, or might be available part of the time and handling other call types for another part of time.
All agents having a particular combination of skills may be deemed a “skill group.” A central problem of skills-based scheduling is then finding a way to predict what fraction of scheduled agents from each skill group will be available to each call type during each time interval being scheduled. If these fractions are known, then the effect of different agent schedules can be generated. Unfortunately, it is difficult or impossible to calculate the skill group availability fractions directly. These functions depend on the relative and absolute call volumes in each call type, on the particulars of the skills-based call distribution algorithms in the ACD, and on the skills profiles of the total scheduled agent population. Particularly as ACD skills-based routing algorithms themselves evolve and become more sophisticated, the factors affecting skill group availability become too complex for direct analysis. One proposed solution provides a feedback mechanism involving call handling simulation and incremental scheduling, to schedule agents in a skills-based routing environment. See, U.S. Pat. No. 6,044,355, expressly incorporated herein in its entirety.
In accordance with this “skills-based scheduling” method, a computer implemented tool is used to determine an optimum schedule for a plurality of scheduled agents in a telephone call center, each of the plurality of scheduled agents having a combination of defined skills. The plurality of scheduled agents are organized into “skill groups” with each group including all scheduled agents having a particular combination of skills. The method begins by generating a plurality of net staffing arrays, each net staff array associated with a given call type and defining, for each time interval to be scheduled, an estimate of a difference between a given staffing level and a staffing level needed to meet a current call handling requirement. In addition to the net staffing arrays, the method uses a plurality of skills group availability arrays, each skills group availability array associated with the given call type and defining, for each combination of skill group and time interval to be scheduled, an estimate of a percentage of scheduled agents from each skill group that are available to handle a call. According to the method, the plurality of arrays are used to generate a proposed schedule for each of the plurality of scheduled agents. Thereafter, a call handling simulation is then run against the proposed schedule using a plurality of ACD call distribution algorithms (one for each call type being scheduled). Based on the results of the call handling simulation, the net staffing arrays and the skills availability arrays are refined to more accurately define the net staffing and skills usage requirements. The process of generating a schedule and then testing that schedule through the simulator is then repeated until a given event occurs. The given event may be a determination that the schedule meets some given acceptance criteria, a passage of a predetermined period of time, a predetermined number of iterations of the process, or some combination thereof. A proposed schedule is “optimized” when it provides an acceptable call handling performance level and an acceptable staffing level in the simulation. Once the proposed schedule is “optimized,” it may be further adjusted (within a particular skill group) to accommodate agent preferences.
U.S. Pat. No. 5,206,903 to Kohler et al. describes ACD equipment which uses static grouping. Each static group of agents is referred to as a “split,” and each split is associated with a different queue. The agents are assigned to splits according to skills. Within a single split, the agents may be limited to knowledge of different subtypes of transactions. Preferably, there is at least one agent in each split who is trained to handle calls of any of the subtypes within the particular split. This “expert” may also be trained to efficiently handle calls of other types, i.e., other splits. Each agent possesses up to four skill numbers that represent various abilities of the agent with respect to handling transactions related to subtypes and types of transactions. The ACD equipment assigns each incoming call three prioritized skill numbers that estimate skill requirements of the incoming call. The skill numbers of the incoming call are considered “prioritized,” since they are viewed sequentially in searching for a match of the call with an agent, so that the second skill number of the call is unnecessary if a match is found using the first prioritized skill number. The incoming call is assigned the one, two or three prioritized skill numbers and is placed in the appropriate queue of the appropriate static group of agents. A search is made among the available agents for an agent-skill number that matches the first skill number of the call. If no match is found after a predetermined time delay, the second prioritized skill number of the call is used to find a match. If no match is found after a second predetermined time delay, the third prioritized skill number is considered. Then, if no match is still found, the ACD equipment of Kohler et al. expands the search of available agents to other groups of agents.
While the Kohler et al. patent does not directly address the problems associated with static groups, it does consider the skills of the individual agents. The prioritized skill numbers assigned to the incoming calls are logically ordered. The patent refers to the first skill number of a call as the primary call-skill indicator. This primary indicator is used to define the minimal skill level that is required for an agent to competently handle the call. Consequently, if a match is made with the primary indicator, the ACD agent may not be over-skilled or under-skilled. However, if the search is unsuccessful, the secondary call-skill indicator is utilized. The search for a match to the secondary indicator may cause the call to be routed to an agent having more than the minimal required skill. The third prioritized skill number that is assigned to the incoming call is referred to as the “tertiary” call-skill indicator. The tertiary indicator is yet another skill level beyond what is minimally required to competently handle a call. Since the tertiary indicator is utilized only if a match is not found for either of the primary or secondary indicators, an overly skilled agent of the appropriate group will handle the call only if that agent is the only available capable agent. Thus, more highly skilled agents are assigned only when their skills are required, or no lesser-skilled agent is available to handle the call.
Group Routing
Various types of conventional automatic distributors (ACDs) are available to distribute incoming calls to a group. Reservation and information services may be provided by large companies, such as major airlines, and may consist of geographically separated groups of agents that answer incoming calls distributed to the agents by separate ACDs. Agent communication terminals (ACTs) which are connected to an ACD are utilized by the agents to process incoming calls routed to a particular ACT by the ACD.
A public branch exchange (PBX) type ACD such as a Definity® ACD available from AT&T functions as a conventional PBX and further functions as an ACD to distribute incoming calls to local agents connected to the PBX. Another type of ACD consists of the utilization of an electronic telecommunication switch such as a 5ESS® switch available from AT&T which is capable of providing ACD service when supposed by ACTs coupled to the switch. Both types of ACD typically function as independent systems which handle incoming calls and make internal decisions concerning which agent will receive a given call. Both types of ACD systems are capable of generating statistical reports which can be monitored by a workstation coupled to the ACD system to allow a supervisor to monitor call handling statistics. Such data typically represents an average of statistics for a given system.
U.S. Pat. No. 4,737,983 to Frauenthal et al. addresses a method of balancing traffic loads to a plurality of customer ACDs. Each ACD periodically transmits call congestion data representing an accumulation of data for the ACD to a central database. Based on this data, the database determines a preferred ACD to which to route an incoming call. Although this technique may be generally sufficient for balancing certain traffic loads, it relies on accumulated or aggregate data on which to base decisions and, hence does not permit specific agents, i.e. ACTs, to be identified to receive a call.
In U.S. Pat. No. 4,953,204 to Cuschleg, Jr. et al., a method is described for queuing calls to a multi-location service provider having a plurality of ACDs. Decisions on routing a call to the ACD is based on the availability of a non-busy voice channel to the ACD. If all channels (circuits) are busy, a call is queued until an ACD becomes available to take the call as determined by a non-busy circuit to the respective ACD. However, the number of agents associated with a given ACD does not necessarily equal the number of circuits provided to the ACD. Thus, the monitoring of available circuits as the basis for queue management and the routing of calls does not correspond to actual agent availability.
Telephone call centers that handle calls to toll-free “800” numbers are well-known in the art. Typically, a company may have many call centers, all answering calls made to the same set of 800 numbers. Each of the company's call centers usually has an automatic call distributor (ACD) or similar equipment capable of queuing calls. ACD management information systems keep statistics on agent and call status, and can report these statistics on frequent intervals. Such capabilities are in use today for centralized reporting and display of multi-location call center status.
In such systems, the company will want to distribute the calls to its call centers in a way that will optimally meet its business goals. Those goals might include low cost of call handling, answering most calls within a given amount of time, providing customized handling for certain calls, and many others. It is also known in the prior art that certain call routing criteria and techniques support a broad range of business goals. These include “load balancing,” “caller segmentation” and “geographic routing.” Load balancing refers to distribution of calls so that the expected answer delay for new calls is similar across all the call centers. If other considerations do not dictate otherwise, load balancing is desirable because it provides optimum efficiency in the use of agents and facilities, and it provides the most consistent grade of service to callers. In special situations it might be desirable to unbalance the load in a particular way, but control over the distribution of call load is still desired.
If the caller's identity can be inferred from the calling number, caller-entered digits, or other information, that identity may influence the choice of destination for the call. Call routing based on such information is referred to as caller segmentation. Also, it has been found desirable for particular call centers to handle calls from particular geographic areas. The motivation may be to minimize call transport costs, to support pre-defined call center “territories”, or to take advantage of agents specifically trained to handle calls from given locations. Such techniques are known as geographic routing.
The interexchange carriers who provide 800 service today generally support some form of “routing plan” to help achieve load balancing, caller segmentation and geographic routing. Typically these routing plans allow 800 call routing based on time of day, day of week, the caller's area code, caller-entered digits, and fixed percentage allocations. Predominately, however, the routing plans supported by the carriers are static in the sense that they do not automatically react to unexpected variations in incoming call volume or distribution, nor to actual call delays being experienced at each destination. Reaction to changing conditions is done via manual modification of the plan, on a time scale of minutes or hours.
Recent service offerings from some interexchange carriers offer some degree of automatic reaction to changing conditions. One such offering, called “alternate termination sequence” or “ATS” (from AT&T), allows customers to establish maximum numbers of calls to be queued for each destination, with a pre-defined alternative when a primary destination is overloaded. Another offering, referred to as “intelligent routing control” or “IRC” (from MCI), allows an ACD to refuse a call from the network, again resulting in pre-defined alternative call handling. A third kind of service, AT&T's Intelligent Call Processing, lets the interexchange network pass call-by-call data to a computer.
In a conventional ACD, phone calls are processed on a first-in, first-out basis: the longest call waiting is answered by the next available agent. Answering calls across multiple automated call distributors (ACD) is typically done on a first-in, first-out basis dependent upon time of receipt of the call by each ACD, whether the call is directly connected or forwarded.
U.S. Pat. No. 4,893,301 is an example of use of a multiple line interface modules with remote line interface connectivity to a PCM bus. Specifically, it discloses use of a portion of an ACD at a remote location from a call center which are connected together via a T-1 connection to perform centralized call processing. This is an example of a single ACD with remote input and processing rather than a network of multiple ACDs forming a virtual call center. In the invention described in this patent, it is possible to process calls at the single ACD on a first-in first-out basis.
U.S. Pat. No. 4,048,452 discloses an ACD where the time in queue for each call is measured and compared against upper and lower time thresholds. When time in queue exceeds an upper threshold, the call is re-directed, provided that the measured time in alternative queue for the oldest call is less than the threshold.
U.S. Pat. No. 4,737,983 discloses an ACD with a database with a pointer maintained to the next entry in a table to be initially selected in response to a next call routing query. Tests may be performed to determine if call should actually be routed to the selected ACD.
U.S. Pat. No. 4,757,529 discloses an ACD creating a separate queue for each call type, detecting when a terminal becomes available, and distributing waiting calls from different queues to servers in accordance with defined priority values.
U.S. Pat. No. 5,073,890 discloses an automatic call distributor for providing ACD service from remote ACD agents.
U.S. Pat. No. 5,278,898 discloses a system for managing a hold queue.
U.S. Pat. No. 5,309,513 discloses a telephone system comprising a plurality of automatic call distributors for receiving and distributing calls in a sequential order.
U.S. Pat. No. 5,369,695 discloses a facility for redirecting a call from one destination point to another, in which event a new timer value could be same as or different from prior timer value.
Another call distribution scheme is provided in Gechter et al., U.S. Pat. No. 5,036,535. This patent discloses a system for automatically distributing telephone calls placed over a network to one of a plurality of agent stations connected to the network via service interfaces, and providing status messages to the network. Gechter et al.'s disclosed system includes means for receiving the agent status messages and call arrival messages from the network, which means are connected via a network service interface to the network. Routing means responsive to the receiving means is provided for generating a routing signal provided to the network to connect the incoming call to an agent station through the network. In the system disclosed in Gechter et al, when an incoming call is made to the call router, it decides which agent station should receive the call, establishes a call with that agent station, and then transfers the original call onto the second call to connect the incoming caller directly to the agent station and then drops out of the connection. (See, Gechter et al., column 11, lines 45–51).
U.S. Pat. No. 5,193,110 issued to Jones et al discloses an integrated services platform for a telephone communications system which platform includes a plurality of application processing ports for providing different types of information services to callers. In Jones et al's disclosed system, a master control unit and a high speed digital switch are used to control processing of incoming phone calls by recognizing the type of service requested by the caller and then routing the call to the appropriate processing port. The Jones et al system is disclosed as an adjunct to current switching technology in public and private networks.
Intelligent Call Management
Call centers are also used to make outbound calls, for example for telemarketing. Agents making outbound calls, referred to as outbound agents, are typically separate from ACD agents handling inbound calls and call center software separately manages outbound call lists for outbound agents to ensure that each outbound agent wastes little time in dialing or in performing overhead operations.
A call center typically has multiple agents for answering incoming calls and placing outgoing calls. A call center may also have agents participating in outgoing call campaigns, typically in conjunction with an outbound call management system. Each agent may be assigned to a particular group, such as an inbound group or an outbound group. Agents can also be assigned to a supervisor team, which represents multiple agents that report to the same supervisor.
In certain situations, it is necessary to restrict an agent's activity to answering calls or handling a particular type of call (e.g., answering only incoming calls). For example, during an outbound campaign, the system placing the outbound calls and controlling the rate at which the calls are placed, e.g., a so-called predictive dialer, relies on the availability of the agent to handle an answered call. If the system places outbound calls expecting the agent to be available, but the agent instead places their own call to another agent or a supervisor, or has an incoming call connected to them, the outbound system may not have an agent available to handle an answered outbound call. Additionally, if an agent is assigned to handle incoming calls, but instead places a call to another agent or listens to voice mail messages, the number of queued incoming calls may increase, thereby increasing the waiting time experienced by the callers.
In existing call centers, agents can be manually switched from one group to another (e.g., from an inbound group to an outbound group). This switching may be performed by a supervisor using a terminal or other device coupled to the call center. In other systems, a supervisor may instruct particular agents to switch from inbound call processing to outbound call processing, or vice versa.
One document which provides considerable information on intelligent networks is “ITU-T Recommendation Q. 1219, Intelligent Network User's Guide for Capability Set 1”, dated April, 1994. This document is incorporated herein by reference.
One known system proposes a call-management method and system for distributing calls to a plurality of individuals, such as automatic call distribution (ACD) agents, which routes calls to the individuals based upon a correlation of attributes of the individuals with calls that are tagged with identification of abilities that are advantageous to efficiently processing the calls. That is, for each call that is to be distributed, one or more skills that are relevant to efficient handling of the call are determined and then used to route the call to an appropriate individual. In addition, call management preferences may also be accommodated.
It is therefore apparent that the prior art has given a good deal of attention to the optimization of call center operations, including inbound automatic call directors, outbound predictive dialers, combined operations, agent scheduling, and call routing.
In general, the known optimization methods seek to minimize the immediate cost function for call center operation. Thus, factors relevant to a present cost of operations (“cost” being given a broad interpretation) are analyzed and an algorithm applied for minimization.